library(tidyverse)
library(targets)
library(kableExtra)
tar_load(sp_mean)
sp_mean |>
  group_by(ldlalt_gr) |>
  summarise(
    lma_leaf = mean(lma_leaf) |> round(1),
    lma_disc = mean(lma_disc) |> round(1)
  ) |>
  write_csv("data/ldlalt.csv")

1 Leaf disc vs whole-leaf LMA (species-level)

1.1 Pooled

1.2 Seprated

1.3 MCMC check


targets::tar_load(fit_sp_no_lma_summary_model)
targets::tar_load(fit_sp_no_lma_int_summary_model)
targets::tar_load(fit_sp_lma_summary_model)
targets::tar_load(fit_sp_lma2_summary_model2)
targets::tar_load(fit_sp_ld_summary_model)
targets::tar_load(fit_sp_ld2_summary_model2)
targets::tar_load(fit_sp_ld3_summary_model)
targets::tar_load(fit_sp_lm_summary_model)
targets::tar_load(fit_sp_lma0_summary_simple)

targets::tar_load(fit_sp_no_lma_diagnostics_model)
targets::tar_load(fit_sp_no_lma_int_diagnostics_model)
targets::tar_load(fit_sp_lma_diagnostics_model)
targets::tar_load(fit_sp_lma2_diagnostics_model2)
targets::tar_load(fit_sp_ld_diagnostics_model)
targets::tar_load(fit_sp_ld2_diagnostics_model2)
targets::tar_load(fit_sp_ld3_diagnostics_model)
targets::tar_load(fit_sp_lm_diagnostics_model)
targets::tar_load(fit_sp_lma0_diagnostics_simple)
fit_sp_no_lma_summary_model |> filter(rhat > 1.1)
#> # A tibble: 0 × 11
#> # … with 11 variables: variable <chr>, mean <dbl>, median <dbl>, sd <dbl>,
#> #   mad <dbl>, q5 <dbl>, q95 <dbl>, rhat <dbl>, ess_bulk <dbl>, ess_tail <dbl>,
#> #   .join_data <dbl>
fit_sp_no_lma_int_summary_model |> filter(rhat > 1.1)
#> # A tibble: 0 × 11
#> # … with 11 variables: variable <chr>, mean <dbl>, median <dbl>, sd <dbl>,
#> #   mad <dbl>, q5 <dbl>, q95 <dbl>, rhat <dbl>, ess_bulk <dbl>, ess_tail <dbl>,
#> #   .join_data <dbl>
fit_sp_lma_summary_model |> filter(rhat > 1.1)
#> # A tibble: 0 × 11
#> # … with 11 variables: variable <chr>, mean <dbl>, median <dbl>, sd <dbl>,
#> #   mad <dbl>, q5 <dbl>, q95 <dbl>, rhat <dbl>, ess_bulk <dbl>, ess_tail <dbl>,
#> #   .join_data <dbl>
fit_sp_lma2_summary_model2 |> filter(rhat > 1.1)
#> # A tibble: 0 × 11
#> # … with 11 variables: variable <chr>, mean <dbl>, median <dbl>, sd <dbl>,
#> #   mad <dbl>, q5 <dbl>, q95 <dbl>, rhat <dbl>, ess_bulk <dbl>, ess_tail <dbl>,
#> #   .join_data <dbl>
fit_sp_ld_summary_model |> filter(rhat > 1.1)
#> # A tibble: 0 × 11
#> # … with 11 variables: variable <chr>, mean <dbl>, median <dbl>, sd <dbl>,
#> #   mad <dbl>, q5 <dbl>, q95 <dbl>, rhat <dbl>, ess_bulk <dbl>, ess_tail <dbl>,
#> #   .join_data <dbl>
fit_sp_ld2_summary_model2 |> filter(rhat > 1.1)
#> # A tibble: 0 × 11
#> # … with 11 variables: variable <chr>, mean <dbl>, median <dbl>, sd <dbl>,
#> #   mad <dbl>, q5 <dbl>, q95 <dbl>, rhat <dbl>, ess_bulk <dbl>, ess_tail <dbl>,
#> #   .join_data <dbl>
fit_sp_ld3_summary_model |> filter(rhat > 1.1)
#> # A tibble: 0 × 11
#> # … with 11 variables: variable <chr>, mean <dbl>, median <dbl>, sd <dbl>,
#> #   mad <dbl>, q5 <dbl>, q95 <dbl>, rhat <dbl>, ess_bulk <dbl>, ess_tail <dbl>,
#> #   .join_data <dbl>
fit_sp_lm_summary_model |> filter(rhat > 1.1)
#> # A tibble: 0 × 11
#> # … with 11 variables: variable <chr>, mean <dbl>, median <dbl>, sd <dbl>,
#> #   mad <dbl>, q5 <dbl>, q95 <dbl>, rhat <dbl>, ess_bulk <dbl>, ess_tail <dbl>,
#> #   .join_data <dbl>
fit_sp_lma0_summary_simple |> filter(rhat > 1.1)
#> # A tibble: 0 × 11
#> # … with 11 variables: variable <chr>, mean <dbl>, median <dbl>, sd <dbl>,
#> #   mad <dbl>, q5 <dbl>, q95 <dbl>, rhat <dbl>, ess_bulk <dbl>, ess_tail <dbl>,
#> #   .join_data <dbl>

It is difficult to model heteroskedasticity and measurement errors at the same time.

div_check(fit_sp_no_lma_diagnostics_model)
#> [1] "0 of 8000 iterations ended with a divergence 0 %"
div_check(fit_sp_no_lma_int_diagnostics_model)
#> [1] "0 of 8000 iterations ended with a divergence 0 %"
div_check(fit_sp_lma_diagnostics_model)
#> [1] "0 of 8000 iterations ended with a divergence 0 %"
div_check(fit_sp_lma2_diagnostics_model2)
#> [1] "0 of 8000 iterations ended with a divergence 0 %"
div_check(fit_sp_ld_diagnostics_model)
#> [1] "0 of 8000 iterations ended with a divergence 0 %"
div_check(fit_sp_ld2_diagnostics_model2)
#> [1] "0 of 8000 iterations ended with a divergence 0 %"
div_check(fit_sp_ld3_diagnostics_model)
#> [1] "0 of 8000 iterations ended with a divergence 0 %"
div_check(fit_sp_lm_diagnostics_model)
#> [1] "0 of 8000 iterations ended with a divergence 0 %"
div_check(fit_sp_lma0_diagnostics_simple)
#> [1] "0 of 8000 iterations ended with a divergence 0 %"
targets::tar_load(loo_model)
loo::loo_compare(
  loo_model[[1]], loo_model[[2]], loo_model[[3]],
  loo_model[[4]], loo_model[[5]], loo_model[[6]],
  loo_model[[7]], loo_model[[8]], loo_model[[9]],
  loo_model[[10]], loo_model[[11]],
  loo_model[[12]], loo_model[[13]]
)
#>         elpd_diff se_diff
#> model10   0.0       0.0  
#> model11  -3.0       4.2  
#> model12  -4.7       3.4  
#> model7  -12.7       6.3  
#> model13 -13.2       5.6  
#> model9  -14.1       6.8  
#> model6  -14.6       6.5  
#> model3  -14.9       6.9  
#> model4  -15.8       6.6  
#> model5  -21.3       8.4  
#> model8  -21.3       8.4  
#> model1  -24.1       7.3  
#> model2  -25.5       7.2
tar_read(cv_sp)
#> $table
#> # A tibble: 4 × 3
#>   model    r2    mse
#>   <chr> <dbl>  <dbl>
#> 1 fit 1 0.866 0.0195
#> 2 fit 2 0.866 0.0196
#> 3 fit 3 0.867 0.0194
#> 4 fit 4 0.874 0.0183
#> 
#> $fit1
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(lma_disc), data = tree)
#> 
#> Coefficients:
#>   (Intercept)  log(lma_disc)  
#>        0.4852         0.9108  
#> 
#> 
#> $fit2
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(la) + log(lt), data = tree, 
#>     offset = log(lma_disc))
#> 
#> Coefficients:
#> (Intercept)      log(la)      log(lt)  
#>    0.007418     0.036529     0.028880  
#> 
#> 
#> $fit3
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(ld_leaf) + log(la) + log(lt), 
#>     data = tree, offset = log(lma_disc))
#> 
#> Coefficients:
#>  (Intercept)  log(ld_leaf)       log(la)       log(lt)  
#>      0.09834       0.06599       0.03733       0.04426  
#> 
#> 
#> $fit4
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(lma_disc) + log(la) + log(lt), 
#>     data = tree)
#> 
#> Coefficients:
#>   (Intercept)  log(lma_disc)        log(la)        log(lt)  
#>       0.64625        0.88001        0.03052        0.10016

1.4 coef

2 SMA table

2.1 species

tar_load(sma_sp_tab)
sma_sp_tab |>
  kable() |>
  kable_styling()
Data Slope Intercept R2
All 0.97 [0.94, 1.01] 0.09 [0.02, 0.16] 0.87
Thick~Large 0.93 [0.85, 1.03] 0.19 [0.01, 0.37] 0.86
Thick~Small 1.02 [0.97, 1.07] 0 [-0.11, 0.11] 0.93
Thin~Large 0.91 [0.82, 1.02] 0.2 [0.02, 0.37] 0.71
Thin~Small 0.93 [0.83, 1.03] 0.16 [-0.02, 0.35] 0.84
sma_sp_tab |>
  write_csv("data/sma_sp_tab.csv")

2.2 species LD

tar_load(sma_sp_ld_tab)
sma_sp_ld_tab |>
  kable() |>
  kable_styling()
Data Slope Intercept R2
All 0.97 [0.94, 1.01] 0.09 [0.02, 0.16] 0.87
DenseThickLarge 0.96 [0.82, 1.13] 0.14 [-0.15, 0.43] 0.79
DenseThickSmall 1.02 [0.94, 1.11] -0.01 [-0.17, 0.15] 0.90
DenseThinLarge 0.8 [0.66, 0.98] 0.37 [0.09, 0.64] 0.60
DenseThinSmall 0.86 [0.72, 1.03] 0.27 [-0.01, 0.55] 0.81
NondenseThickLarge 0.75 [0.59, 0.94] 0.58 [0.22, 0.94] 0.72
NondenseThickSmall 0.99 [0.87, 1.13] 0.05 [-0.23, 0.32] 0.82
NondenseThinLarge 0.77 [0.65, 0.91] 0.49 [0.25, 0.74] 0.56
NondenseThinSmall 0.87 [0.71, 1.06] 0.28 [-0.06, 0.62] 0.68
sma_sp_ld_tab |>
  write_csv("data/sma_sp_ld_tab.csv")

2.3 species simple

tar_load(sma_sp_2_tab)
sma_sp_2_tab |>
  kable() |>
  kable_styling()
Data Slope Intercept R2
All 0.97 [0.94, 1.01] 0.09 [0.02, 0.16] 0.87
Dense 0.97 [0.91, 1.04] 0.08 [-0.03, 0.2] 0.84
Less dense 0.93 [0.87, 0.99] 0.19 [0.08, 0.3] 0.85
Large 0.96 [0.9, 1.03] 0.12 [0, 0.24] 0.80
Small 1 [0.96, 1.05] 0.03 [-0.06, 0.11] 0.92
Thick 0.98 [0.94, 1.03] 0.08 [-0.02, 0.17] 0.90
Thin 0.92 [0.85, 0.99] 0.19 [0.06, 0.32] 0.75
sma_sp_2_tab |>
  write_csv("data/sma_sp_2_tab.csv")

2.4 tree

tar_load(sma_tree_tab)
sma_tree_tab |>
  kable() |>
  kable_styling()
Data Slope Intercept R2
All 0.96 [0.94, 0.99] 0.11 [0.06, 0.16] 0.72
Thick~Large 0.97 [0.9, 1.04] 0.12 [-0.03, 0.26] 0.61
Thick~Small 0.94 [0.9, 0.98] 0.16 [0.07, 0.24] 0.79
Thin~Large 0.91 [0.84, 0.97] 0.21 [0.09, 0.32] 0.45
Thin~Small 0.91 [0.85, 0.98] 0.19 [0.07, 0.31] 0.66

2.5 tree LD

tar_load(sma_tree_ld_tab)
sma_tree_ld_tab |>
  kable() |>
  kable_styling()
Data Slope Intercept R2
All 0.96 [0.94, 0.99] 0.11 [0.06, 0.16] 0.72
DenseThickLarge 0.89 [0.79, 1] 0.25 [0.06, 0.44] 0.49
DenseThickSmall 0.91 [0.85, 0.97] 0.21 [0.1, 0.32] 0.76
DenseThinLarge 0.75 [0.67, 0.85] 0.44 [0.29, 0.6] 0.34
DenseThinSmall 0.8 [0.72, 0.9] 0.36 [0.2, 0.52] 0.65
NondenseThickLarge 0.74 [0.64, 0.86] 0.61 [0.38, 0.83] 0.43
NondenseThickSmall 0.84 [0.78, 0.91] 0.38 [0.24, 0.53] 0.68
NondenseThinLarge 0.73 [0.65, 0.81] 0.57 [0.42, 0.72] 0.28
NondenseThinSmall 0.89 [0.78, 1.01] 0.25 [0.03, 0.46] 0.38

3 Validation

tar_load(cv_sp)
cv_sp
#> $table
#> # A tibble: 4 × 3
#>   model    r2    mse
#>   <chr> <dbl>  <dbl>
#> 1 fit 1 0.866 0.0195
#> 2 fit 2 0.866 0.0196
#> 3 fit 3 0.867 0.0194
#> 4 fit 4 0.874 0.0183
#> 
#> $fit1
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(lma_disc), data = tree)
#> 
#> Coefficients:
#>   (Intercept)  log(lma_disc)  
#>        0.4852         0.9108  
#> 
#> 
#> $fit2
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(la) + log(lt), data = tree, 
#>     offset = log(lma_disc))
#> 
#> Coefficients:
#> (Intercept)      log(la)      log(lt)  
#>    0.007418     0.036529     0.028880  
#> 
#> 
#> $fit3
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(ld_leaf) + log(la) + log(lt), 
#>     data = tree, offset = log(lma_disc))
#> 
#> Coefficients:
#>  (Intercept)  log(ld_leaf)       log(la)       log(lt)  
#>      0.09834       0.06599       0.03733       0.04426  
#> 
#> 
#> $fit4
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(lma_disc) + log(la) + log(lt), 
#>     data = tree)
#> 
#> Coefficients:
#>   (Intercept)  log(lma_disc)        log(la)        log(lt)  
#>       0.64625        0.88001        0.03052        0.10016
tar_load(cv_tree)
cv_tree
#> $table
#> # A tibble: 4 × 3
#>   model    r2    mse
#>   <chr> <dbl>  <dbl>
#> 1 fit 1 0.718 0.0421
#> 2 fit 2 0.684 0.0467
#> 3 fit 3 0.702 0.0440
#> 4 fit 4 0.739 0.0385
#> 
#> $fit1
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(lma_disc), data = tree)
#> 
#> Coefficients:
#>   (Intercept)  log(lma_disc)  
#>        0.8911         0.8176  
#> 
#> 
#> $fit2
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(la) + log(lt), data = tree, 
#>     offset = log(lma_disc))
#> 
#> Coefficients:
#> (Intercept)      log(la)      log(lt)  
#>     0.05804      0.03071      0.05749  
#> 
#> 
#> $fit3
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(ld_leaf) + log(la) + log(lt), 
#>     data = tree, offset = log(lma_disc))
#> 
#> Coefficients:
#>  (Intercept)  log(ld_leaf)       log(la)       log(lt)  
#>      0.30044       0.16541       0.03573       0.11701  
#> 
#> 
#> $fit4
#> 
#> Call:
#> lm(formula = log(lma_leaf) ~ log(lma_disc) + log(la) + log(lt), 
#>     data = tree)
#> 
#> Coefficients:
#>   (Intercept)  log(lma_disc)        log(la)        log(lt)  
#>       1.54932        0.72303        0.01379        0.21886

4 Leaf disc vs whole-leaf LMA (individual-level)

5 Divergence (species-level)

6 LMA and LD (species-level)

7 CV

8 Leaf support cost (species-level)

9 Computing Environment

devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.1.3 (2022-03-10)
#>  os       Ubuntu 20.04.4 LTS
#>  system   x86_64, linux-gnu
#>  ui       X11
#>  language (EN)
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       Etc/UTC
#>  date     2022-05-07
#>  pandoc   2.16.2 @ /usr/bin/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  ! package        * version    date (UTC) lib source
#>  P abind            1.4-5      2016-07-21 [?] RSPM (R 4.1.0)
#>  P assertthat       0.2.1      2019-03-21 [?] RSPM (R 4.1.3)
#>    backports        1.4.1      2021-12-13 [1] RSPM (R 4.1.3)
#>  P base64url        1.4        2018-05-14 [?] RSPM (R 4.1.0)
#>  P bit              4.0.4      2020-08-04 [?] RSPM (R 4.1.3)
#>  P bit64            4.0.5      2020-08-30 [?] RSPM (R 4.1.3)
#>  P broom            0.7.12     2022-01-28 [?] RSPM (R 4.1.3)
#>  P bslib            0.3.1      2021-10-06 [?] RSPM (R 4.1.3)
#>  P cachem           1.0.6      2021-08-19 [?] RSPM (R 4.1.0)
#>  P callr            3.7.0      2021-04-20 [?] CRAN (R 4.1.1)
#>  P car              3.0-12     2021-11-06 [?] RSPM (R 4.1.0)
#>  P carData          3.0-5      2022-01-06 [?] RSPM (R 4.1.0)
#>  P cellranger       1.1.0      2016-07-27 [?] RSPM (R 4.1.3)
#>  P checkmate        2.0.0      2020-02-06 [?] RSPM (R 4.1.0)
#>  P cli              3.2.0      2022-02-14 [?] RSPM (R 4.1.0)
#>  P cmdstanr       * 0.5.1.9000 2022-04-19 [?] Github (stan-dev/cmdstanr@bfa83a4)
#>  P codetools        0.2-18     2020-11-04 [?] CRAN (R 4.1.2)
#>  P colorspace       2.0-3      2022-02-21 [?] RSPM (R 4.1.3)
#>    crayon           1.5.1      2022-03-26 [1] RSPM (R 4.1.3)
#>  P data.table       1.14.2     2021-09-27 [?] RSPM (R 4.1.3)
#>  P DBI              1.1.2      2021-12-20 [?] RSPM (R 4.1.3)
#>  P dbplyr           2.1.1      2021-04-06 [?] RSPM (R 4.1.3)
#>  P desc             1.4.0      2021-09-28 [?] CRAN (R 4.1.1)
#>  P devtools         2.4.3      2021-11-30 [?] RSPM (R 4.1.0)
#>    digest           0.6.29     2021-12-01 [1] RSPM (R 4.1.3)
#>  P distributional   0.3.0      2022-01-05 [?] RSPM (R 4.1.0)
#>  P dplyr          * 1.0.8      2022-02-08 [?] RSPM (R 4.1.3)
#>  P ellipsis         0.3.2      2021-04-29 [?] CRAN (R 4.1.1)
#>    evaluate         0.15       2022-02-18 [1] RSPM (R 4.1.3)
#>  P extrafont      * 0.17       2014-12-08 [?] RSPM (R 4.1.0)
#>  P extrafontdb      1.0        2012-06-11 [?] RSPM (R 4.1.0)
#>    fansi            1.0.3      2022-03-24 [1] RSPM (R 4.1.3)
#>  P farver           2.1.0      2021-02-28 [?] RSPM (R 4.1.3)
#>  P fastmap          1.1.0      2021-01-25 [?] CRAN (R 4.1.1)
#>  P forcats        * 0.5.1      2021-01-27 [?] RSPM (R 4.1.3)
#>    fs               1.5.2      2021-12-08 [1] RSPM (R 4.1.3)
#>  P fst              0.9.8      2022-02-08 [?] RSPM (R 4.1.0)
#>  P fstcore        * 0.9.12     2022-03-23 [?] RSPM (R 4.1.0)
#>  P generics         0.1.2      2022-01-31 [?] RSPM (R 4.1.3)
#>  P ggplot2        * 3.3.5      2021-06-25 [?] RSPM (R 4.1.3)
#>  P ggpubr         * 0.4.0.999  2022-04-09 [?] Github (mattocci27/ggpubr@901fdeb)
#>  P ggsignif         0.6.3      2021-09-09 [?] RSPM (R 4.1.0)
#>  P ggsma          * 0.1.0      2022-04-09 [?] Github (mattocci27/ggsma@2b56c57)
#>  P glue             1.6.2      2022-02-24 [?] RSPM (R 4.1.0)
#>  P gtable           0.3.0      2019-03-25 [?] RSPM (R 4.1.3)
#>  P haven            2.4.3      2021-08-04 [?] RSPM (R 4.1.3)
#>  P highr            0.9        2021-04-16 [?] CRAN (R 4.1.1)
#>  P hms              1.1.1      2021-09-26 [?] RSPM (R 4.1.3)
#>  P htmltools        0.5.2      2021-08-25 [?] CRAN (R 4.1.1)
#>  P httr             1.4.2      2020-07-20 [?] CRAN (R 4.1.2)
#>  P igraph           1.3.0      2022-04-01 [?] RSPM (R 4.1.0)
#>  P insight          0.17.0     2022-03-29 [?] RSPM (R 4.1.0)
#>  P janitor        * 2.1.0      2021-01-05 [?] RSPM (R 4.1.0)
#>  P jquerylib        0.1.4      2021-04-26 [?] RSPM (R 4.1.3)
#>  P jsonlite       * 1.7.2      2020-12-09 [?] CRAN (R 4.1.1)
#>  P kableExtra     * 1.3.4      2021-02-20 [?] RSPM (R 4.1.0)
#>    knitr          * 1.38       2022-03-25 [1] RSPM (R 4.1.3)
#>  P labeling         0.4.2      2020-10-20 [?] RSPM (R 4.1.3)
#>  P languageserver * 0.3.12     2021-10-19 [?] RSPM (R 4.1.0)
#>  P lifecycle        1.0.1      2021-09-24 [?] CRAN (R 4.1.1)
#>  P loo            * 2.5.1      2022-03-24 [?] RSPM (R 4.1.0)
#>  P lubridate        1.8.0      2021-10-07 [?] RSPM (R 4.1.3)
#>    magrittr         2.0.3      2022-03-30 [1] RSPM (R 4.1.3)
#>  P matrixStats      0.61.0     2021-09-17 [?] RSPM (R 4.1.0)
#>  P memoise          2.0.1      2021-11-26 [?] RSPM (R 4.1.0)
#>  P modelr         * 0.1.8      2020-05-19 [?] RSPM (R 4.1.3)
#>  P munsell          0.5.0      2018-06-12 [?] RSPM (R 4.1.3)
#>  P patchwork      * 1.1.1      2020-12-17 [?] RSPM (R 4.1.0)
#>  P performance    * 0.9.0      2022-03-30 [?] RSPM (R 4.1.0)
#>    pillar           1.7.0      2022-02-01 [1] RSPM (R 4.1.3)
#>  P pkgbuild         1.3.1      2021-12-20 [?] RSPM (R 4.1.0)
#>  P pkgconfig        2.0.3      2019-09-22 [?] CRAN (R 4.1.1)
#>  P pkgload          1.2.2      2021-09-11 [?] CRAN (R 4.1.1)
#>  P posterior        1.2.1      2022-03-07 [?] RSPM (R 4.1.0)
#>  P prettyunits      1.1.1      2020-01-24 [?] RSPM (R 4.1.3)
#>    processx         3.5.3      2022-03-25 [1] RSPM (R 4.1.3)
#>  P ps               1.6.0      2021-02-28 [?] CRAN (R 4.1.1)
#>  P purrr          * 0.3.4      2020-04-17 [?] CRAN (R 4.1.1)
#>  P qs               0.25.3     2022-02-22 [?] RSPM (R 4.1.0)
#>  P R6               2.5.1      2021-08-19 [?] CRAN (R 4.1.1)
#>  P RApiSerialize    0.1.0      2014-04-19 [?] RSPM (R 4.1.0)
#>  P Rcpp             1.0.8.3    2022-03-17 [?] RSPM (R 4.1.0)
#>    RcppParallel     5.1.5      2022-01-05 [1] RSPM (R 4.1.3)
#>  P readr          * 2.1.2      2022-01-30 [?] RSPM (R 4.1.3)
#>  P readxl           1.4.0      2022-03-28 [?] RSPM (R 4.1.3)
#>  P remotes          2.4.1      2021-09-29 [?] CRAN (R 4.1.1)
#>    renv             0.15.4     2022-04-19 [1] Github (rstudio/renv@5ea7504)
#>  P reprex           2.0.1      2021-08-05 [?] RSPM (R 4.1.3)
#>  P rlang            1.0.2      2022-03-04 [?] RSPM (R 4.1.3)
#>  P rmarkdown        2.13       2022-03-10 [?] RSPM (R 4.1.3)
#>  P rprojroot        2.0.2      2020-11-15 [?] CRAN (R 4.1.1)
#>  P rstatix          0.7.0      2021-02-13 [?] RSPM (R 4.1.0)
#>  P rstudioapi       0.13       2020-11-12 [?] CRAN (R 4.1.1)
#>  P Rttf2pt1         1.3.8      2020-01-10 [?] RSPM (R 4.1.0)
#>  P rvest            1.0.2      2021-10-16 [?] RSPM (R 4.1.3)
#>  P sass             0.4.1      2022-03-23 [?] RSPM (R 4.1.3)
#>    scales           1.2.0      2022-04-13 [1] RSPM (R 4.1.3)
#>  P sessioninfo      1.2.2      2021-12-06 [?] RSPM (R 4.1.0)
#>  P smatr          * 3.4-8      2018-03-18 [?] RSPM (R 4.1.0)
#>  P snakecase        0.11.0     2019-05-25 [?] RSPM (R 4.1.0)
#>    stantargets    * 0.0.4      2022-05-04 [1] Github (ropensci/stantargets@aa3f941)
#>  P stringfish       0.15.7     2022-04-13 [?] RSPM (R 4.1.0)
#>    stringi          1.7.6      2021-11-29 [1] RSPM (R 4.1.3)
#>  P stringr        * 1.4.0      2019-02-10 [?] CRAN (R 4.1.1)
#>  P svglite          2.1.0      2022-02-03 [?] RSPM (R 4.1.0)
#>  P systemfonts      1.0.4      2022-02-11 [?] RSPM (R 4.1.0)
#>  P tarchetypes    * 0.6.0      2022-04-19 [?] RSPM (R 4.1.0)
#>  P targets        * 0.12.0     2022-04-19 [?] RSPM (R 4.1.0)
#>  P tensorA          0.36.2     2020-11-19 [?] RSPM (R 4.1.0)
#>  P testthat         3.0.4      2021-07-01 [?] CRAN (R 4.1.1)
#>    tibble         * 3.1.6      2021-11-07 [1] RSPM (R 4.1.3)
#>  P tidyr          * 1.2.0      2022-02-01 [?] RSPM (R 4.1.3)
#>  P tidyselect       1.1.2      2022-02-21 [?] RSPM (R 4.1.3)
#>  P tidyverse      * 1.3.1      2021-04-15 [?] RSPM (R 4.1.0)
#>  P tzdb             0.3.0      2022-03-28 [?] RSPM (R 4.1.3)
#>  P usethis          2.1.5      2021-12-09 [?] RSPM (R 4.1.0)
#>  P utf8             1.2.2      2021-07-24 [?] CRAN (R 4.1.1)
#>    vctrs            0.4.1      2022-04-13 [1] RSPM (R 4.1.3)
#>  P viridisLite      0.4.0      2021-04-13 [?] RSPM (R 4.1.3)
#>  P vroom            1.5.7      2021-11-30 [?] RSPM (R 4.1.3)
#>  P webshot          0.5.2      2019-11-22 [?] RSPM (R 4.1.0)
#>  P withr            2.5.0      2022-03-03 [?] RSPM (R 4.1.0)
#>  P xfun             0.30       2022-03-02 [?] RSPM (R 4.1.3)
#>  P xml2             1.3.3      2021-11-30 [?] CRAN (R 4.1.2)
#>    yaml             2.3.5      2022-02-21 [1] RSPM (R 4.1.3)
#> 
#>  [1] /home/mattocci/leaf-disc/renv/library/linux-ubuntu-focal/R-4.1/x86_64-pc-linux-gnu
#>  [2] /usr/local/lib/R/library
#> 
#>  P ── Loaded and on-disk path mismatch.
#> 
#> ──────────────────────────────────────────────────────────────────────────────
tar_visnetwork()
#> ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
#> ✔ ggplot2 3.3.5     ✔ purrr   0.3.4
#> ✔ tibble  3.1.6     ✔ dplyr   1.0.8
#> ✔ tidyr   1.2.0     ✔ stringr 1.4.0
#> ✔ readr   2.1.2     ✔ forcats 0.5.1
#> ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
#> ✖ dplyr::filter() masks stats::filter()
#> ✖ dplyr::lag()    masks stats::lag()
#> This is cmdstanr version 0.5.1.9000
#> - CmdStanR documentation and vignettes: mc-stan.org/cmdstanr
#> - CmdStan path: /opt/cmdstan/cmdstan-2.29.0
#> - CmdStan version: 2.29.0
#> 
#> A newer version of CmdStan is available. See ?install_cmdstan() to install it.
#> To disable this check set option or environment variable CMDSTANR_NO_VER_CHECK=TRUE.
#> CmdStan path set to: /opt/cmdstan/cmdstan-2.29.0